package com.wen.common.pojo.system.oauth;

import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

/**
 * 授权成功后的用户信息，根据授权平台的不同，获取的数据完整性也不同
 * <p>
 *
 * @author devin <devinlive@163.com>
 * @version 1.0
 * @since 2023/08/30 17:20
 */
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ToString
@TableName("cms_oauth_user")
public class OAuthUser {

    /**
     * 用户第三方系统的唯一id。可以用uuid + source唯一确定一个用户.
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 系统用户ID
     */
    private Long userId;

    /**
     * 第三方提供者
     */
    private String provider;
    /**
     * 第三方用户ID,因为不确定第三方用户id是什么类型，所以用字符串
     */
    private String providerUserId;
    /**
     *  第三方用户昵称
     */
    private String nickName;
    /**
     *  第三方用户头像
     */
    private  String avatar;
    /**
     * 用户邮箱
     */
    private String email;

    /**
     * 用户授权的token信息
     */
    @TableField(exist = false)
    private String accessToken;
    /**
     * 第三方平台返回的原始用户信息
     */
    @TableField(exist = false)
    private JSONObject rawUserInfo;
}
